iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
Software Development

Web API:從零開始探索公開 API 與資料應用系列 第 18 篇

Day 18|分析電影API回傳的JSON資料

  • 分享至 

  • xImage
  •  

一、前言

前幾天使用 TVmaze API 搜尋了 Harry Potter、Harry 和 Potter,
也比較了三次搜尋得到的結果。

Day 17 已經從 JSON 的「結構」來觀察電影 API,
知道最外層是一個 Array,裡面放著搜尋結果,
而每一筆結果又會有 score 和 show 等資料。

今天拿Harry Potter這次查詢的結果來做詳細的說明,

⸻

二、搜尋結果的 score
https://ithelp.ithome.com.tw/upload/images/20261003/20178901DIwsrz7nmv.jpg
首先可以看到:
"score":0.55135465
這個 score 可以理解成這筆搜尋結果和我們輸入的關鍵字之間的相關程度。

Harry Potter → 0.55135465
Harry → 0.86335677
Potter → 0.8518436

所以每次搜尋得到的結果,都可能有不同的 score。

⸻

三、主要的節目資料show

接下來可以看到
"show":{
"id":68803,
"name":"Harry Potter",
...
}
這裡的show可以理解成這筆搜尋結果主要的節目資料。
進入show後
就可以看到節目的名稱、類型、語言、分類、狀態等資訊。

前面的score 比較像是在描述「這筆搜尋結果和關鍵字的關係」,
而 show 則是「這筆結果本身的資料」。

⸻

四、節目名稱與基本資料

在 show 裡面首先可以看到
"id":68803,
"name":"Harry Potter",
"type":"Scripted",
"language":"English"

其中
id 是這個節目在 TVmaze 中的識別編號。
name 是節目的名稱,
這次就是我們搜尋到的 Harry Potter。

type 是節目類型,這筆資料顯示為 Scripted。
language 則是節目使用的語言,這裡是 English。
這幾個欄位可以讓我們先知道這筆資料是在描述哪一個節目。

⸻

五、節目分類genres

再往下可以看到:
"genres":[
"Fantasy",
"Supernatural"
]
這裡的 genres 是節目的分類。
這次 Harry Potter 的分類有:

  • Fantasy
  • Supernatural
    因為前面使用的是 [],所以這裡可以放不只一個分類。

回頭比較 Day 16 的結果,
也可以發現搜尋到的
Harry 分類是 Drama,
Potter 則是 Comedy。
所以不同的搜尋結果,即使關鍵字有部分相同,
實際找到的節目資料還是可能完全不同。

⸻

六、status和runtime

接著可以看到:
"status":"In Development",
"runtime":60
status 是節目的狀態。
這次 Harry Potter 的資料顯示為 In Development。
runtime 則是節目的播放時間,這筆資料是 60 分鐘。

和前面兩個結果比較:
Harry Potter → 60 分鐘
Harry → 50 分鐘
Potter → 30 分鐘
可以發現這三個節目的播放時間並不相同。

因此 API 回傳的資料不只是讓我們知道「找到哪個節目」,還可以進一步拿不同欄位來做比較。

⸻

七、premiered 和 ended

再往後可以看到:
"premiered":"2026-12-25",
"ended":null
premiered 可以理解成節目開始播出的日期。

這裡的資料是:
2026-12-25
而 ended 則是節目結束的日期。
顯示null
代表這個欄位目前沒有實際的值。

這也和前面書籍 API 看到的情況一樣,
API 回傳的 JSON 並不一定每個欄位都有資料,
有些欄位可能會是 null。

⸻

八、播出電視台network

繼續往下看,還可以找到:
"network":{
"id":8,
"name":"HBO",
"country":{
"name":"United States",
"code":"US",
...
}
}
這裡的 network 可以用來取得節目播出的電視台等資訊。

這筆資料中的 name 是HBO

而 network 裡面又有 country,可以看到:
"name":"United States"
"code":"US"
所以看這一個區塊,
就可以取得節目電視台以及國家等相關資訊。

⸻

九、總結

把今天分析的欄位放在一起,可以整理成:
score
→ 搜尋結果的相關程度
show
→ 主要的節目資料
name
→ 節目名稱
genres
→ 節目分類
status
→ 節目狀態
runtime
→ 播放時間
premiered
→ 開始播出的日期
ended
→ 結束播出的日期
network
→ 播出電視台等資訊
這樣再回頭看原本一大串的 JSON,
就比較能知道每一個部分是在描述什麼。

電影 API 的主要內容也差不多完成了,
下一篇會把這幾天從查詢、比較到 JSON 分析的內容整理起來,作為電影 API 這一段的總結。


上一篇
Day 17|電影 API 的 JSON 結構
下一篇
Day 19|電影 API 總結
系列文
Web API:從零開始探索公開 API 與資料應用 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言